﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Process.Entities;
using Process.DAL;
using KZ.Exception;
using KZ.Utilities;

namespace Process.BLL
{
    public class ProviderBLL
    {
        public static bool ValidateLogin(string sID, string username, string password)
        {
            if (String.IsNullOrEmpty(username)) { throw new BusinessLogicException("Bạn phải nhập tên đăng nhập."); }
            if (String.IsNullOrEmpty(password)) { throw new BusinessLogicException("Bạn phải nhập mật khẩu."); }

            ProviderENT partner = ProviderDAL.GetProviderByUsername(username);
            if (String.IsNullOrEmpty(partner.ProviderID)) { throw new BusinessLogicException("Tên đăng nhập không tồn tại."); }

            password = Utility.MD5Encrypt(password).ToLower();
            if (password != partner.ProviderPassword.ToLower()) { throw new BusinessLogicException("Mật khẩu không chính xác."); }

            SessionBLL sessionBLL = new SessionBLL();
            if (sessionBLL.InsertSession(sID, partner.ProviderID))
            {
                return true;
            }
            throw new BusinessLogicException("Có lỗi khi đăng nhập hệ thống.");
        }

        public static ProviderENT GetProviderByID(string providerID)
        {
            return ProviderDAL.GetProviderByID(providerID);
        }

        public static List<ProviderENT> GetProviderList()
        {
            return ProviderDAL.GetProviderList();
        }

        public static List<ProviderENT> GetProviderListForCMB()
        {
            List<ProviderENT> providerList = new List<ProviderENT>();
            providerList.Add(new ProviderENT());
            providerList.AddRange(ProviderDAL.GetProviderList());

            return providerList;
        }
    }
}
